package com.example.springbott.bean.kerbal;

import com.example.springbott.bean.MarketAddress;
import com.example.springbott.bean.MarketCart;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@NoArgsConstructor
@Data
public class WxCartCheckoutVo {


    @JsonProperty("grouponRulesId")
    private Integer grouponRulesId;
    @JsonProperty("actualPrice")
    private Integer actualPrice;
    @JsonProperty("orderTotalPrice")
    private Integer orderTotalPrice;
    @JsonProperty("cartId")
    private Integer cartId;
    @JsonProperty("userCouponId")
    private Integer userCouponId;
    @JsonProperty("couponId")
    private Integer couponId;
    @JsonProperty("goodsTotalPrice")
    private Integer goodsTotalPrice;
    @JsonProperty("addressId")
    private Integer addressId;
    @JsonProperty("grouponPrice")
    private Integer grouponPrice;
    @JsonProperty("checkedAddress")
    private MarketAddress checkedAddress;
    @JsonProperty("couponPrice")
    private Integer couponPrice;
    @JsonProperty("availableCouponLength")
    private Integer availableCouponLength;
    @JsonProperty("freightPrice")
    private Integer freightPrice;
    @JsonProperty("checkedGoodsList")
    private List<MarketCart> checkedGoodsList;

    @NoArgsConstructor
    @Data
    public static class CheckedAddressDTO {
        @JsonProperty("id")
        private Integer id;
        @JsonProperty("name")
        private String name;
        @JsonProperty("userId")
        private Integer userId;
        @JsonProperty("province")
        private String province;
        @JsonProperty("city")
        private String city;
        @JsonProperty("county")
        private String county;
        @JsonProperty("addressDetail")
        private String addressDetail;
        @JsonProperty("areaCode")
        private String areaCode;
        @JsonProperty("tel")
        private String tel;
        @JsonProperty("isDefault")
        private Boolean isDefault;
        @JsonProperty("addTime")
        private String addTime;
        @JsonProperty("updateTime")
        private String updateTime;
        @JsonProperty("deleted")
        private Boolean deleted;
    }

    @NoArgsConstructor
    @Data
    public static class CheckedGoodsListDTO {
        @JsonProperty("id")
        private Integer id;
        @JsonProperty("userId")
        private Integer userId;
        @JsonProperty("goodsId")
        private Integer goodsId;
        @JsonProperty("goodsSn")
        private String goodsSn;
        @JsonProperty("goodsName")
        private String goodsName;
        @JsonProperty("productId")
        private Integer productId;
        @JsonProperty("price")
        private Integer price;
        @JsonProperty("number")
        private Integer number;
        @JsonProperty("specifications")
        private List<String> specifications;
        @JsonProperty("checked")
        private Boolean checked;
        @JsonProperty("picUrl")
        private String picUrl;
        @JsonProperty("addTime")
        private String addTime;
        @JsonProperty("updateTime")
        private String updateTime;
        @JsonProperty("deleted")
        private Boolean deleted;
    }
}

